Virtualization technologies have become widely used for sharing limited computer hardware resources. In a hardware virtualization environment, sometimes also referred to as a platform virtualization environment, one or more virtual machines can simulate a host computer with its own operating system. In particular, software executed on these virtual machines can be separated from the underlying hardware resources. As a result, virtual machines running on a same host computer can each have its own operating system. For example, a computer that is running a Microsoft Windows™ operating system may host a virtual machine that simulates a computer running a Linux operating system, based on which Linux-based software can be executed.
In a virtualization environment, virtual machines can be associated with one or more peripheral devices, such as a printer, a microphone, a headset, a camera, a webcam, an optical drive, an external or internal hard drive, a keyboard, a pointing device, a universal serial bus (USB) device, etc. A user may make such associations, for example, by assigning a grid or a list of peripheral devices to a plurality of virtual machines through a device manager interface, which provides the list of peripheral devices, the type of the peripheral devices (e.g., ports, USB, USB video, etc.), dropdown menus for the assignment, and checkboxes for deleting or keeping the current assignment. Therefore, for managing a peripheral device assignment, a user is typically required to bring up the device manager in a control panel and go through several steps. The process for managing the peripheral devices is thus burdensome, not user friendly, and prone to error.